쿠버네티스 업그레이드 및 유지보수

쿠버네티스 클러스터의 안정적인 운영을 위해서는 정기적인 업그레이드와 유지보수가 필수적입니다.

클러스터 업그레이드 전략

업그레이드 절차 예시

컨트롤 플레인 업그레이드

# 현재 버전 확인
kubectl version

# kubeadm 업그레이드 계획 확인
sudo kubeadm upgrade plan

# kubeadm 업그레이드 적용
sudo kubeadm upgrade apply v1.24.0

# 컨트롤 플레인 노드에서 kubelet 및 kubectl 업그레이드
sudo apt-get update
sudo apt-get install -y kubelet=1.24.0-00 kubectl=1.24.0-00
sudo systemctl daemon-reload
sudo systemctl restart kubelet
2026-10 갱신

  • kubectl version --short의 --short 플래그는 v1.28에서 제거되었습니다. 현재는 kubectl version만으로 간단한 형식이 출력됩니다.
  • 예시의 1.24.0-00 형식 패키지 버전은 폐쇄된 구 저장소(apt.kubernetes.io) 기준입니다. 현재 커뮤니티 저장소 pkgs.k8s.io는 마이너 버전별로 저장소가 분리되어 있고 패키지 버전 형식도 다르므로(예: 1.37.x-1.1), apt-cache madison kubeadm으로 확인한 버전을 사용합니다. 또한 kubeadm upgrade 전에 kubeadm 패키지를 먼저 업그레이드해야 합니다.

워커 노드 업그레이드

# 노드 비우기(drain)
kubectl drain <node-name> --ignore-daemonsets

# 노드에서 kubeadm 업그레이드
sudo kubeadm upgrade node

# kubelet 업그레이드 및 재시작
sudo apt-get update
sudo apt-get install -y kubelet=1.24.0-00
sudo systemctl daemon-reload
sudo systemctl restart kubelet

# 노드 다시 스케줄 가능하게 설정
kubectl uncordon <node-name>

etcd 백업 및 복구

etcd 백업 생성

# 인증서 사용하여 etcd 스냅샷 생성
sudo ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-snapshot.db \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key

etcd 복구

# etcd 중지
sudo systemctl stop etcd

# 스냅샷에서 복구
sudo ETCDCTL_API=3 etcdctl snapshot restore /backup/etcd-snapshot.db \
  --data-dir=/var/lib/etcd-restore

# 복구된 데이터 디렉토리 사용하도록 설정 변경
sudo mv /var/lib/etcd /var/lib/etcd.old
sudo mv /var/lib/etcd-restore /var/lib/etcd

# etcd 재시작
sudo systemctl start etcd

클러스터 유지보수 모범 사례

CKA 시험 관련 중요 포인트


관련 문서